package ar.edu.utn.frsf.tpae.a2013.g03.persistencia.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;



/**
 * Objeto del modelo de datos (persistente). Representa un SolicitudGasto.
 * 
 * @author Juan Barrionuevo
 */
@Entity
@Table(name = "slg")
//@Inheritance(strategy=InheritanceType.JOINED)
public class SolicitudGasto {
	
	@Id
	@Column(name = "slg_id", unique=true , nullable=false )
	@SequenceGenerator(name = "slg_gen", sequenceName = "seq_slg", allocationSize=1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "slg_gen")
	private Integer idSolicitudGasto;
	
	@ManyToOne
	@JoinColumn(name="slg_emp_id", nullable=false)
	private Empleado empleado;
	
	@ManyToOne
	@JoinColumn(name="slg_spv_id", nullable=false)
	private Supervisor supervisor;
	
	@ManyToOne
	@JoinColumn(name="slg_cco_id", nullable=false)
	private CentroCosto centroCosto;
	
	@Column(name="slg_desc", nullable=false)
	private String descripcion;
	
	@Column(name="slg_imp_est", nullable=false)
	private Float importeEstimado;
	
	@Column(name="slg_est", nullable=false)
	private String estado;
	
	public SolicitudGasto() {
		idSolicitudGasto = null;
		empleado = new Empleado();
		supervisor = new Supervisor();
		centroCosto = new CentroCosto();
		descripcion = null;
		importeEstimado = null;
		estado = null;
	}
	public SolicitudGasto(Integer idSolicitudGasto, Empleado empleado,
			Supervisor supervisor, CentroCosto centroCosto, String descripcion,
			Float importeEstimado, String estado) {
		super();
		this.idSolicitudGasto = idSolicitudGasto;
		this.empleado = empleado;
		this.supervisor = supervisor;
		this.centroCosto = centroCosto;
		this.descripcion = descripcion;
		this.importeEstimado = importeEstimado;
		this.estado = estado;
	}
	public Integer getIdSolicitudGasto() {
		return idSolicitudGasto;
	}
	public void setIdSolicitudGasto(Integer idSolicitudGasto) {
		this.idSolicitudGasto = idSolicitudGasto;
	}
	public Empleado getEmpleado() {
		return empleado;
	}
	public void setEmpleado(Empleado empleado) {
		this.empleado = empleado;
	}
	public Supervisor getSupervisor() {
		return supervisor;
	}
	public void setSupervisor(Supervisor supervisor) {
		this.supervisor = supervisor;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public Float getImporte() {
		return importeEstimado;
	}
	public void setImporte(Float importeEstimado) {
		this.importeEstimado = importeEstimado;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public CentroCosto getCentroCosto() {
		return centroCosto;
	}
	public void setCentroCosto(CentroCosto centroCosto) {
		this.centroCosto = centroCosto;
	}	
	
}
